package com.example.task11v12window;

import java.util.Arrays;
import java.util.Map;

public class SpellChecker {
    public static void main(String[] args) {
        String text = "Карова дает малако каторае пъут дэти из ковш";
        String[] roots = {"молок", "коров", "апельсин", "котор", "дети", "кош"};

        String correctedText = correctSpelling(text, roots);
        System.out.println(correctedText);
    }

    public static String correctSpelling(String text, String[] roots) {
        String[] words = text.split(" ");
        StringBuilder correctedText = new StringBuilder();
        String sub = "";
        boolean checker = false;
        int sum = 0;
        for (String i : text.split(" ")) {
            checker = false;
            for (String j : roots) {
                sum = 0;
//                sum = Math.abs(i.length() - j.length());
                for (int z = 0; z < j.length(); z++) {
                    if (i.toLowerCase().charAt(z) != j.toLowerCase().charAt(z)) {
                        sum++;
                    }
                    if (z >= i.length() - 1)
                        break;
                }
                if (sum <= 1) {
                    checker = true;
                    correctedText.append(j);
                    correctedText.append(i.substring(j.length())+" ");
                }
            }
            if (!checker)
                correctedText.append(i+" ");
        }
        return correctedText.toString().trim();
    }
}
